Code Tracing
Code tracing is when the programmer interprets the results of each line of code and keeps track by hand of the effect of each statement. This type of manual code tracing is often faster than using a debugger to step through (trace) the execution of a program. Care is needed as manual code tracing is more error prone.
Suppose we wish to sum the odd integers from 1 to 9 using a while loop.
Here is Matlab code to do that:
sum = 0;
num = 1;
while num <= 9
sum = sum + num;
num = num + 2;
end
disp(sum)
Let's track (trace) the execution of the above code fragment. Write each variable down and keep track of (trace) the current value of the variable.
- Initialize
sumandnumto 0 and 1, respectively.
- Evaluate the condition expression:
(num <= 9) - Since
numhas the value 1, the condition evaluates to true (1). - Execute the body of the loop:
sumis updated to 1 andnumis updated to 3.
- Evaluate the condition expression; since
numis 3,num<= 9 is true. - Execute the body of the loop:
sumis updated to 4 andnumis updated to 5.
- Evaluate the condition expression; since
numis 5,num<= 9 is true. - Execute the body of the loop:
sumis updated to 9 andnumis updated to 7.
sum: 0 1 4 9 num: 1 3 5 7
- Evaluate the condition expression; since
numis 7,num<= 9 is true. - Execute the body of the loop:
sumis updated to 16 andnumis updated to 9.
- Evaluate the condition expression; since
numis 9,num<= 9 is true. - Execute the body of the loop:
sumis updated to 25 andnumis updated to 11.
- Evaluate the condition expression; since
numis 11,num<= 9 is false. - Do not execute the body of the loop. Instead, control jumps to
the
dispstatement that follows theendof the loop. - Display the final value of
sum.
Note that you can use Matlab to help you trace the execution of the code by
removing the semicolons (;) from the code. This causes the values of sum
and num to be displayed in the Command Window each time they are updated.
This type of output can get very long to read through, but is accurate.
Also, you can use the debugger operations to step through this code to trace its execution. Try each technique and compare the pros and cons of each. Programmers utilize lots of code tracing techniques while developing solutions to problems.
Manually tracing the execution of long loops is very time consuming. Programmers usually make the problem similar, but smaller, if the code doesn't work as intended. For instance, if the code works for 1 to 9, it should also work for 1 to 1,000,001.